home *** CD-ROM | disk | FTP | other *** search
/ The X-Philes (2nd Revision) / The X-Philes Number 1 (1995).iso / xphiles / coding / dsp / c5xug.exe / CRGT.ASM < prev    next >
Encoding:
Assembly Source File  |  1990-07-05  |  1.9 KB  |  65 lines

  1. ;**************************************************************
  2. ;  
  3. ;                 crgt.asm
  4. ;  
  5. ;                 staff
  6. ;  
  7. ;                 07-05-90
  8. ;  
  9. ;           (C) Texas Instruments Inc., 1992 
  10. ;  
  11. ;           Refer to the file 'license.txt' included with this 
  12. ;           this package for usage and license information. 
  13. ;  
  14. ;**************************************************************
  15. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  16. ; This routine searches through a block of data in the data memory
  17. ; to store maximum value and the address of that value in memory
  18. ; locations MAXVAL and MAXADR respectively. The data block could be
  19. ; of any size defined by the Block Repeat Counter Register (BRCR).
  20. ;
  21. ; KEY C5X instructions:
  22. ;
  23. ; RPTB     repeat a block of code as defined by repeat counter BRCR
  24. ; CRGT     compare ACC to ACCB. Store larger value in both ACC, ACCB
  25. ;     set CARRY flag if a larger than previous large is found
  26. ; XC     execute conditionally (1 or 2 words) if flag (Carry) set
  27. ;
  28. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  29. ;
  30. MAXADR    .set    60h
  31. MAXVAL    .set    61h
  32.     .mmregs
  33.     .text
  34.  
  35.     LDP    #0        ; point to data page 0
  36.     LAR    AR0, #0300h    ; AR= data memory addr
  37.     SETC    SXM        ; set sign extension mode
  38.     LACC    #0FFFFh     ; load minimum value
  39. ;;;; Use #07FFFh (largest possible) to check for minimum value
  40.     SACB            ; into ACCB
  41.     SPLK    #9,BRCR     ; rpt cont = 9 for 10 data values
  42.     RPTB    endb -1     ; repeat block from here to endb-1
  43. startb
  44.     LACC    *        ; load data from <(AR0)> into ACC
  45.     CRGT            ; set carry if ACC > previous largest
  46. ;  Use CRLT to find minimum value
  47.     XC    #1,C        ; save addr if current value > previous largest
  48.     SAR    AR0,MAXADR    ;
  49.     MAR    *+
  50. endb
  51.     SACL    MAXVAL        ; save largest which is in ACC & ACCB
  52.  
  53.     .data            ; data is expected to be in data ram
  54.     .word    5000
  55.     .word    10000
  56.     .word    320
  57.     .word    3200
  58.     .word    -5600
  59.     .word    -2105
  60.     .word    2100
  61.     .word    32050
  62.     .word    1000
  63.     .word    -1
  64.     .end
  65.